18. Aprende a programar II
18.1. Gambas o el Visual Basic libre.
18.2. SharpDevelop y MonoDevelop, programando en C#.
18.3. Programando en Java con Eclipse.
18.4. Y mucho más: PHP, GNU Prolog, etc.


18.1. Gambas o el Visual Basic libre.


18.1.1 Definición. Características.

Gambas está pensado para los desarrolladores de software que estén acostumbrados a programar en Windows con Visual Basic, la idea es que puedan dar fácilmente el salto a Linux.

Este entorno de programación destaca por su sencillez de utilización y funcionalidad, es muy aconsejable por ejemplo, para proyectos de acceso a bases de datos. Además como característica anecdótica podemos decir que el entorno de programación de gambas está escrito en el propio lenguaje Gambas. La página oficial del proyecto es:http://gambas.sourceforge.net/


18.1.2 Instalación.

Para su instalación, precisas el paquete gambas. Una vez instalado, se nos ubicará en la categoría de Desarrollo.


18.1.3 Creación de un proyecto visual: un Hola Mundo contestón.

Vamos a crear una aplicación sencilla:

1.- Al iniciar la aplicación presenta la ilustración que mostramos a continuación.

Desde aquí podemos abrir un proyecto creado previamente o crear uno nuevo, ejecutar ejemplos que nos ilustren el funcionamiento de la aplicación o salir.

Haz clic sobre Nuevo proyecto y sigue el asistente.

2. En esta ilustración nos muestra la pantalla de bienvenida del asistente, pulsa sobre Siguiente para continuar.

3. Ahora tenemos que seleccionar el tipo de proyecto que deseamos, hemos elegido un Proyecto gráfico al más puro estilo Visual Basic. Haz clic en Siguiente

Observa que podíamos realizar también un proyecto de consola o terminal, así como copiar o tomar como base un proyecto ya existente.

4. Seguidamente tendremos que proporcionarle un nombre al proyecto y el título del mismo, tras rellenar estos campos pulsamos sobre el botón Siguiente

También puedes marcar las opciones: el proyecto es traducible y los controles del formulario son públicos.

5. Después hemos de elegir la carpeta donde almacenaremos los ficheros del proyecto, seleccionamos la que deseemos y hacemos clic en Siguiente

6. Ya hemos acabado, en la última pantalla del asistente nos muestra un resumen o sumario de todas las opciones elegidas, pulsamos sobre el botón Crear

Una vez completado el asistente, ya tenemos nuestro proyecto.

7. Ahora hemos de agregar un formulario. Observa en la figura adjunta en la ventana de la izquierda, haciendo clic en Formularios con el ratón derecho, Nuevo Formulario. Le daremos un nombre y dibujaremos los controles que deseemos.

La idea es diseñar primero la GUI, es decir la interfaz gráfica de usuario, personalizarla a nuestro gusto, dándole las propiedades adecuadas y más tarde implementar la funcionalidad.

8. Hemos pues incluido en nuestro formulario lo siguiente:

  • Una imagen (PictureBox), observa sus propiedades en la ventana de la derecha. Las propiedades más importante son Picture, el fichero imagen y Stretch que ajusta (si está a True) la imagen al espacio asignado en el formulario.

  • Dos etiquetas (Label), de la que hemos definido las propiedades: Text, el texto que se muestra y Font, el tipo y fuente de letra; una es “Aprende libre”, otra es “Introduce tu nombre”.

  • Un cuadro de texto (TextBox) para que el usuario pueda introducir su nombre, hemos dejado vacío el campo Text.

  • Un botón (Button) del que hemos modificado su propiedad Text que ahora muestra “Botón Contestón”.

9. Ahora vamos a darle funcionalidad al botón de suerte que cuando el usuario haga clic sobre dicho botón le muestre un mensaje. Para ello hemos de codificar el evento de pulsar el botón, haz doble clic sobre el botón y tal como muestra la ilustración inferior escribimos la siguiente instrucción: Message.Info(“Encantado de conocerte, “ & TextBox1.Text, “Salir”). Observa que hemos concatenado (unido) con el operador & dos cadenas de caracteres, una es “Encantado de conocerte” y otra es la cadena que capturamos del control TextBox1, a través de su propiedad Text.

Observa que podíamos realizar también un proyecto de consola o terminal, así como copiar o tomar como base un proyecto ya existente.

10. Pues ya tenemos el programa realizado, para probarlo haz clic sobre el botón Ejecutar y verás el resultado obtenido.


18.2. SharpDevelop y MonoDevelop, programando en C#.


18.2.1. SharpDevelop.

SharpDevelop es la opción GNU de la plataforma .NET, es un IDE libre para C#, VB.NET y Boo. Su página oficial es http://www.icsharpcode.net/OpenSource/SD/.


18.2.1.1 Instalación de SharpDevelop.

Para la instalación del entorno ve a la sección de descargas de la Web oficial en http://www.icsharpcode.net/OpenSource/SD/Download/ y descarga la última versión estable. Puedes optar por diferentes instalaciones pero la opción por defecto suele adecuarse a la mayoría de las necesidades.


18.2.1.2 Creación de una aplicación aparente “sin código”.

1.-Una vez instalado, lo arrancamos desde Inicio, Todos los programas, Sharp Develop 2.2, SharpDevelop.

2.-El siguiente paso consiste en abrir una solución o crear una nueva, haz clic en Nueva solución.

3.- Elegimos el tipo de proyecto que deseamos, típicamente una Aplicación Windows, indicamos además el nombre y la ubicación donde se alojará el proyecto.

4.-Finaliza el asistente haciendo clic en Crear.

Una vez iniciada la aplicación vemos que tenemos dos vistas: fuente y diseño. Ahora nos centraremos en el modo diseño, para ver todo lo que podemos hacer sin escribir una línea de código.

5.-Insertamos en nuestro proyecto los siguientes controles y modificamos las siguientes propiedades (observa la barra de propiedades en la parte derecha):

  • Una imagen (pictureBox): Image (el fichero imagen), SizeMode a StretchImage para que la imagen se adapte al cuadro asignado.

  • Un calendario, el control es MonthCalendar.

  • Una etiqueta, se han cambiado las propiedades Text y Font.

  • Un navegador, WebBrowser al que se le ha definido la propiedad Url con http://www.inforbooks.com/.

6.-Finaliza lanzando la aplicación desde el botón ejecutar o con Proyecto, Ejecutar Proyecto y ya tenemos algo bastante aceptable para no haber escrito una línea de código.


18.2.1.3 Piquemos ya algo de código.

Vamos a dotarle de cierta funcionalidad, por ejemplo, que al hacer clic sobre un botón muestre la hora. Arrastra el control botón a tu formulario y haz clic sobre él. En el editor de código escribe la siguiente implementación:


void Button1Click(object sender, EventArgs e)

{

DateTime hora = DateTime.Now;

string miHora = hora.ToString();

MessageBox.Show(miHora,"Información horaria",

MessageBoxButtons.OK, MessageBoxIcon.Information);

}

La función que escribiremos responderá al evento clic sobre el objeto botón Button1. Simplemente hemos creado un objeto hora de la clase DateTime, luego llamamos al método ToString() que nos devuelve una cadena con la información horaria y la hemos mostrado por pantalla con el típico cuadro o diálogo de mensaje. Este tiene como título “Información horaria”, un botón de Aceptar y el icono de información para indicar el tipo de diálogo de mensaje.

Insertamos dos controles más: otro botón (Información del sistema) y una caja de texto. Vamos a hacer que cuando el usuario haga clic en Button2, se muestre en la caja de texto recién creada información sobre el ordenador, observa que todo se basa en modificar el atributo Text de la caja de texto (texBox1.Text) y llamar a varios métodos de la clase SystemInformation que nos devuelven información sobre el sistema.


void Button2Click(object sender, EventArgs e)

{

textBox1.Text = "El usuario del ordenador " + SystemInformation.ComputerName + " es " + SystemInformation.UserName +".";

}

Fíjate en el resultado final obtenido, prueba a crear otro botón y escribe el código Close(), ¿Qué sucede?


18.2.2 MonoDevelop.

El proyecto Mono nos permite realizar aplicaciones compatibles con .NET en Linux ya que dispone, entre otras características, de una máquina virtual con lo que conseguimos que el proyecto sea independiente de la plataforma donde sea utilizado a posteriori.

La página oficial del proyecto es http://www.monohispano.es/index.php/Portada, donde podremos estar informados de las últimas novedades, así como descargarnos diversos manuales y ejemplos.


18.2.2.1 Instalación de MonoDevelop.

La instalación se basa en la instalación de dos paquetes: mono y monodevelop. La aplicación se lanza desde: Aplicaciones, Programación, MonoDevelop.


18.2.2.2 Trabajando con MonoDevelop.

Creamos un nuevo proyecto, bien desde Archivo, Nuevo Proyecto o desde el enlace donde dice Empezar un proyecto nuevo.

Contamos, como puedes observar en la figura, con varios tipos de proyecto. Creamos un proyecto Gtk# 2.0 en C#.

Le asignamos un nombre y una ubicación. En el resto de las pantallas del asistente, dejamos los valores por defecto.

Una vez finalizado el asistente, nos crea un esqueleto de aplicación, incluso nos escribe el típico “Hola mundo”, por nosotros.

Ahora construimos la aplicación:

Proyecto, Construir solución o la tecla F8. Si no ha habido errores en la lista de tareas, obtendrás el mensaje: Hecho. Construcción satisfactoria.

Finalmente ejecutamos la aplicación: Proyecto, Ejecutar o la tecla F5. Ni mostramos el resultado obtenido, una triste ventana que no nos dice ni mu, pero ¡qué perro!


Bueno no te vamos a engañar, utilizar este programa es una tarea bastante más compleja y ardua que la de otros IDE aquí ya expuestos. Sin embargo veremos que se puede también trabajar con él.

Observa en la figura inferior el área de trabajo, a la izquierda navegas por el administrador de la soluciones, a su derecha puedes ver la interfaz creada para la nueva aplicación, a su derecha la barra de herramientas y finalmente la de propiedades. Si no te aparece alguna ventana puedes acceder a través de la entrada de menú Ver


Los componentes no se pueden arrastrar sin más al área de trabajo, si así lo hicieras, el primero que arrastres ocuparía todo el área de trabajo. Precisamos un contenedor, aquí se ha optado por el contenedor HBox que divide el área en tres paneles horizontales.

En el primer área horizontal hemos puesto una etiqueta rotulada “Aprende libre”, en el del medio el calendario (Calendar) y finalmente en el tercero un botón. Además de cambiar la etiqueta al botón, le hemos dicho que responda a la señal clic. Observa que en la ventana de propiedades, hay dos pestañas: Propiedades y Señales.

La que buscamos es la segunda, Señales, y selecciona la señal o el evento que se llama Clicked. Tienes que hacer clic sobre ella para que se cree una función que lo maneje, es decir vamos a crear el código que responda al evento clic sobre dicho botón.

Observa en la figura la implementación del método o manejador onButton2Clicked:

Fíjate en la parte derecha de la ventana, la ejecución del programa.


18.3. Programando en Java con Eclipse.


18.3.1 Definición. Características. Direcciones interesantes.

Para los amantes de java, Eclipse es una buena opción, su página Web oficial es www.eclipse.org. Se trata de una aplicación de código abierto y multiplataforma, elaborada por IBM. Un entorno de desarrollo profesional para aplicaciones desarrolladas bajo este lenguaje.


18.3.2 Instalación.

La instalación en Windows consiste en navegar a la sección de descargas de la página oficial http://www.eclipse.org/downloads/, elegir el IDE adecuado así como la plataforma, en este ejemplo elegimos Eclipse IDE for Java Developers. En otras palabras, entorno de desarrollo Eclipse para programadores de Java. Sigue los pasos del asistente que son bastante simples e indica donde crear el workspace, es decir, el directorio de trabajo donde se almacenan los proyectos.

En Linux se instala con el paquete eclipse y lo encontrarás en Aplicaciones, Programación, Eclipse.


18.3.3 Creación de proyectos con Eclipse.

Observa en la ilustración la pantalla de bienvenida, tienes acceso a tutoriales, ejemplos, etc.

Crea un nuevo proyecto: File, New, Project. Selecciona dentro de Java, Java Project.

Ahora dale un nombre, por ejemplo HolaMundoLibre.

Puedes elegir si deseas crear el proyecto en tu entorno de trabajo o crearlo a partir de uno ya existente, la versión del entorno de ejecución de java, etc.

Por lo general debes dejar todas las opciones en sus valores por defecto. Haz clic en Finish, finalizar.

Creamos una nueva clase de java con File, New, Class.

Fíjate que hemos definido un paquete pasateLibre, un nombre para la clase principal (HolaMundoLibreClass) que hereda de una clase padre (en Java existe un único árbol de herencia cuya raíz es la clase Object) y que nos cree el prototipo del método main.

En Java todo son clases (Java es un lenguaje orientado a objetos puro) y se almacenan en archivos con la extensión .java, cuando éstos se compilan obtienes los ficheros .class.

Ahora procederemos a escribir el código necesario para ejecutar el programa más simple, el típico “hola mundo”.

Fíjate en primer lugar en la parte izquierda, en tu proyecto HolaMundoLibre cuentas con un paquete pasateLibre y dentro de éste se encuentra la clase HolaMundoLibreClass (que se almacena en el fichero HolaMundoLibreClass.java).

El propio entorno de desarrollo simplifica la escritura de código mostrándote los métodos y clases a tu disposición, así como una explicación de los mismos. Escribe en el cuerpo del método main: System.out.println(“Hola Mundo, Pásate a Linux”) y guarda el proyecto: File, Save. Ejecuta el programa en Run, Run y observa el resultado en la consola en la parte inferior derecha de la figura.

Si queremos extender la funcionalidad precisamos añadir nuevas clases como se ha hecho en ejemplos previos; así con File, New, Class crearíamos la clase Complejo, escribe el siguiente código:


package pasateLibre;


public class Complejo {

int real;

int imaginario;

Complejo (int a, int b)

{

real = a;

imaginario = b;

}

public static Complejo suma(Complejo a, Complejo b)

{

Complejo resultado = new Complejo(a.real+b.real,a.imaginario+b.imaginario);

return resultado;

}

public static Complejo producto(Complejo a, Complejo b){

Complejo resultado = new Complejo(a.real*b.real-a.imaginario*b.imaginario, a.real*b.imaginario+a.imaginario*b.real);

return resultado;

}

[…]

public String toString()

{

return real + " + " + imaginario + " i";

}

}


Ahora desde la función main, podremos utilizar la nueva clase, al encontrarse en el mismo paquete (no precisamos importarla):

public static void main(String[] args) {

Complejo a = new Complejo(2,2);

Complejo b = new Complejo(2,4);

Complejo c = Complejo.suma(a, b);

System.out.print(c.toString());

}


18.4. Y mucho más: PHP, GNU Prolog, etc.


18.4.1 Prolog libre: GNU Prolog y SWI-Prolog.

GNU Prolog es un compilador libre de Prolog. Su página Web es http://www.gprolog.org/, desde aquí puedes bajar el ejecutable para Windows. Si eres usuario de Ubuntu, basta con instalar los paquetes gprolog y gprolog-doc, conteniendo este último la documentación.

SWI-Prolog es otro compilador bajo licencia LGPL, cuya página oficial es http://www.swi-prolog.org/, análogamente podrás bajar el instalador para Windows desde su sección Download. En Ubuntu instala los paquetes swi-prolog y swi-prolog-doc para la documentación.

Para lanzarlos ve a Inicio, Todos los programas, GNU Prolog, GNU Prolog o SWI-Prolog, Prolog. En Linux escribe en la consola gprolog o swiprolog respectivamente.

Vamos a realizar un programa con SWI-Prolog, sigue los siguientes pasos:

  1. Con un editor de textos, crea el fichero familia.pl en la carpeta Prolog de Mis Documentos.

  1. Abre la aplicación y el navegador de Prolog con File, Navigator.

  1. Desde el navegador haz clic con el botón derecho en familia.pl y selecciona Consult. La familia se compone de hechos, como por ejemplo que maximo es el padre de martanunez, padre(maximo,martanunez) y predicados como por ejemplo hermano(A, B). A es hermano de B si tienen el mismo padre (padre(Padre, A), padre(Padre,B)), la misma madre (madre(Madre, A), madre(Madre, B)), A es varón (sexo(A, varon)) y no son la misma persona (A\= = B).

  1. Ahora ya podemos realizar las consultas, por ejemplo, “dime quienes son hermanos”: hermano(A,B). A cada respuesta debemos responder con un punto y coma “;” para que siga buscando. Cuando ya ha acabado de procesar todas las posibles respuestas, responde con un No.

Variantes de este ejemplo clásico y otros muchos puedes encontrar en castellano en la entrada wiki de prolog: http://es.wikipedia.org/wiki/Prolog y en el portal “Programación en castellano” en su tutorial de prolog http://www.programacion.com/tutoriales/prolog/


18.4.2 Desarrollo PHP: Dev-PHP, PHPEclipse.

Primero precisamos instalamos XAMP desde su página oficial http://www.apachefriends.org/en/xampp.html. XAMP nos ofrece una instalación extremadamente sencilla de un LAMP:

(1) Un servidor Web, Apache.

(2) Un servidor de base de datos MySQL;

(3) Los lenguajes de programación PHP y Perl.

Existen versiones para Windows y para Linux. Ahora lo explicaremos para Windows, la instalación en Linux lo dejaremos para el capítulo “Nuestro Servidor Educativo”.

Una vez instalado debes observar en el panel de control que los servicios están corriendo o ejecutándose: Running.

Para acceder al panel de control, sigue la secuencia: Inicio, Todos los programas, Apache Friends, XAMPP, XAMPP Control Panel.

Abre tu navegador favorito y teclea http://localhost, debes obtener algo parecido a lo que puedes ver en la figura.

Haz clic en phpinfo() para comprobar que tienes PHP funcionando sin problemas.

Dev-PHP es un entorno integrado de desarrollo que te posibilita crear scripts y aplicaciones para PHP. Esta liberado bajo la licencia GNU y su página Web es http://devphp.sourceforge.net/. Puedes utilizar también las librerías PHP-GTK.

Tendrás que configurar las opciones generales en Options, General Options. En particular, debes indicar donde se encuentra instalado el interprete PHP.

Observa en la figura la configuración general de la herramienta. También se puede apreciar en la ventana de fondo, la pantalla principal de Dev-PHP. A la izquierda se encuentran una serie de pestañas que te permiten acceder a la ayuda, ejemplos y al fichero o archivos de tu proyecto. A su derecha encuentras el editor de código y los visualizadores o navegadores tanto locales como remotos.

Crea primero un proyecto Project, New Project. En principio, debes instalarlo a partir de c:\xampp\htdocs que es donde está la raíz de tu servidor Web para que puedas visualizarlos también con un navegador fuera del entorno. Más tarde, puedes ir añadiendo archivos al proyecto .php o .html desde File, New, PHP Script o HTML Document.



No es mala idea que, sobre todo en los comienzos, cuando crees ficheros PHP, compruebes fuera del editor que todo funciona perfectamente. Es decir, abre Firefox y escribe la dirección correspondiente, por ejemplo: http://localhost/HolaLibre.php.


También Eclipse cuenta con PHPEclipse, visita http://www.phpeclipse.de/tiki-view_articles.php y descárgate el conjunto de plugins que dotan al IDE Eclipse de la funcionalidad necesaria para trabajar con PHP.

Bájate el archivo .zip y contendrá dos directorios, uno llamado plugins y otro features, debes descomprimirlos en los directorios plugins y features de la carpeta de tu disco duro donde instalaste Eclipse.

Así cuando creas un proyecto en Eclipse File, New, Project, tendrás una nueva opción en la carpeta PHP, PHP Project (proyecto PHP), haz clic en Next.

Luego te preguntará sobre el nombre del proyecto y sobre si quieres que se incluya en el espacio de trabajo que definiste cuando instalaste Eclipse.

En principio, lo razonable es agrupar todos tus proyectos en un mismo espacio de trabajo.

Para agregar ficheros PHP, sigue la secuencia: File, New, PHP File, asígnales un nombre y eclipse te creará un esqueleto de script php.

Ahora para poder depurar el código precisas hacer algo más de trabajo, sigue la secuencia Run, Open Debug Dialog…

En PHP DBG Script debes crear una nueva configuración haciendo clic en el botón .

La configuración mínima exige indicarle, tal como se ve en la figura, donde tenemos instalado el intérprete de PHP. Busca en la pestaña Environment, Interpreter. Cuando acabes haz clic en Apply.

Fíjate como en la consola en la parte inferior derecha de la pantalla puedes depurar el programa, además podrás ver el resultado final en un navegador utilizando la pestaña PHP Browser (debes crear el proyecto a partir del directorio root de tu servidor Web). Observa la entrada de menú PHP/Apache que te permite iniciar y apagar los servidores de xampp sin salir del IDE.


18.4.3 Lisp, un respeto a los mayores: CLisp, GCL.

Lisp es un lenguaje declarativo con bastantes años. Hay dos compiladores libres:

Observa que hemos sumado tres números, definido con defun la función factorial, calculado el factorial de siete y realizado varias operaciones con listas.


18.4.4 También hay lenguajes de moda “open source”, Ruby y Python.

Ruby es un lenguaje de programación orientado a objetos “open source”, interpretado y reflexivo. La manera más fácil de instalarlo es desde http://rubyinstaller.rubyforge.org/wiki/wiki.pl, que contiene un auto instalador de “1 clic”. Entras en la consola con cmd (Inicio, Todos los programas, Ejecutar) y escribes irb.

Observa que hemos vuelto a calcular el factorial de 7 de la misma forma, pero obviamente cambia la sintaxis. Además hemos aprovechado para escribir el típico hola mundo, pero libre, ¿eh?

Python es otro lenguaje muy de moda, en Linux no tienes ni que instalarlo basta con invocarlo escribiendo python en la consola. Si eres usuario de Windows puedes descargarte el instalador de la página oficial http://www.python.org/.

Es un lenguaje orientado a objetos que ofrece según la Web oficial una gran integración con otros lenguajes de programación y herramientas de desarrollo.

Volvemos a calcular el factorial de 7 y a mostrar un mensaje, pero esta vez en Python sobre Linux.